#!/bin/bash

# 设置日志文件
LOG_FILE="/data/mysqlbackup/backup.log"
DATE=$(date +\%F_\%T)  # 获取当前时间，格式：YYYY-MM-DD_HH-MM-SS
DB_USER="root"  # 数据库用户名
DB_PASSWORD="your_password"  # 数据库密码
DB_NAME="your_database"  # 要备份的数据库名称
DAYS_TO_KEEP=15  # 保留的天数

# 创建备份目录（如果不存在）
mkdir -p /data/mysqlbackup

# 记录脚本开始时间
echo "[$DATE] 开始备份数据库 $DB_NAME" >> $LOG_FILE

# 执行数据库备份并将输出写入日志
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > /data/mysqlbackup/db_backup_$DATE.sql 2>> $LOG_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "[$DATE] 数据库 $DB_NAME 备份成功: /data/mysqlbackup/db_backup_$DATE.sql" >> $LOG_FILE
else
    echo "[$DATE] 数据库 $DB_NAME 备份失败" >> $LOG_FILE
    exit 1  # 如果备份失败，则退出脚本
fi

# 删除超过 15 天的备份文件并记录日志
echo "[$DATE] 开始删除超过 $DAYS_TO_KEEP 天的备份文件" >> $LOG_FILE
find /data/mysqlbackup -type f -name "*.sql" -mtime +$DAYS_TO_KEEP -exec rm -f {} \; >> $LOG_FILE 2>&1

# 记录删除完成时间
echo "[$DATE] 删除超过 $DAYS_TO_KEEP 天的备份文件完成" >> $LOG_FILE